// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.idea.fir.completion.test.handlers;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("fir/tests")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("../../completion/testData/incrementalResolve")
public abstract class K2CompletionIncrementalResolveTestGenerated extends AbstractK2CompletionIncrementalResolveTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../completion/testData/incrementalResolve/basic")
    public abstract static class Basic extends AbstractK2CompletionIncrementalResolveTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("../../completion/testData/incrementalResolve/basic/localChange")
        public static class LocalChange extends AbstractK2CompletionIncrementalResolveTest {
            @java.lang.Override
            @org.jetbrains.annotations.NotNull
            public final KotlinPluginMode getPluginMode() {
                return KotlinPluginMode.K2;
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
            }

            @TestMetadata("addVariable_beforeCaret.kt")
            public void testAddVariable_beforeCaret() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/localChange/addVariable_beforeCaret.kt");
            }

            @TestMetadata("changeVariable_beforeCaret.kt")
            public void testChangeVariable_beforeCaret() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/localChange/changeVariable_beforeCaret.kt");
            }

            @TestMetadata("deleteVariable_beforeCaret.kt")
            public void testDeleteVariable_beforeCaret() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/localChange/deleteVariable_beforeCaret.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("../../completion/testData/incrementalResolve/basic")
        public static class Uncategorized extends AbstractK2CompletionIncrementalResolveTest {
            @java.lang.Override
            @org.jetbrains.annotations.NotNull
            public final KotlinPluginMode getPluginMode() {
                return KotlinPluginMode.K2;
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
            }

            @TestMetadata("functionWithExpressionBody.kt")
            public void testFunctionWithExpressionBody() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/functionWithExpressionBody.kt");
            }

            @TestMetadata("functionWithExpressionBody_implicitType.kt")
            public void testFunctionWithExpressionBody_implicitType() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/functionWithExpressionBody_implicitType.kt");
            }

            @TestMetadata("localAnonymousFunctionWithExpressionBody.kt")
            public void testLocalAnonymousFunctionWithExpressionBody() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/localAnonymousFunctionWithExpressionBody.kt");
            }

            @TestMetadata("noDataFlowFromOldStatement.kt")
            public void testNoDataFlowFromOldStatement() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/noDataFlowFromOldStatement.kt");
            }

            @TestMetadata("propertyWithInitializer.kt")
            public void testPropertyWithInitializer() throws Exception {
                runTest("../../completion/testData/incrementalResolve/basic/propertyWithInitializer.kt");
            }
        }
    }
}
